local descriptor = {
	enum_id = {
		[1] = 1,
		[2] = 2,
		[3] = 3,
		[4] = 4,
		[5] = 5,
		[6] = 6,
		[7] = 7,
		[8] = 8,
		[9] = 9,
		[10] = 10,
		[11] = 11,
		[12] = 12,
		[13] = 13,
		[14] = 14,
		[15] = 15,
		[16] = 16,
		[17] = 17,
		[18] = 18,
		[19] = 1,
		[20] = 2,
		[21] = 3,
		[22] = 1,
		[23] = 2,
		[24] = 3,
		[25] = 0,
		[26] = 1,
		[27] = 2,
	},
	enum_name = {
		[1] = "google.protobuf.FieldDescriptorProto.Type\000",
		[2] = "google.protobuf.FieldDescriptorProto.Label\000",
		[3] = "google.protobuf.FileOptions.OptimizeMode\000",
		[4] = "google.protobuf.FieldOptions.CType\000",
	},
	enum_size = {
		[1] = 18,
		[2] = 3,
		[3] = 3,
		[4] = 3,
	},
	enum_string = {
		[1] = "TYPE_DOUBLE\000",
		[2] = "TYPE_FLOAT\000",
		[3] = "TYPE_INT64\000",
		[4] = "TYPE_UINT64\000",
		[5] = "TYPE_INT32\000",
		[6] = "TYPE_FIXED64\000",
		[7] = "TYPE_FIXED32\000",
		[8] = "TYPE_BOOL\000",
		[9] = "TYPE_STRING\000",
		[10] = "TYPE_GROUP\000",
		[11] = "TYPE_MESSAGE\000",
		[12] = "TYPE_BYTES\000",
		[13] = "TYPE_UINT32\000",
		[14] = "TYPE_ENUM\000",
		[15] = "TYPE_SFIXED32\000",
		[16] = "TYPE_SFIXED64\000",
		[17] = "TYPE_SINT32\000",
		[18] = "TYPE_SINT64\000",
		[19] = "LABEL_OPTIONAL\000",
		[20] = "LABEL_REQUIRED\000",
		[21] = "LABEL_REPEATED\000",
		[22] = "SPEED\000",
		[23] = "CODE_SIZE\000",
		[24] = "LITE_RUNTIME\000",
		[25] = "STRING\000",
		[26] = "CORD\000",
		[27] = "STRING_PIECE\000",
	},
	message_field = {
		[1] = {
			id = 1,
			label = 2,
			name = "file\000",
			type = 11,
			type_name = "google.protobuf.FileDescriptorProto\000",
		},
		[2] = {
			id = 1,
			label = 0,
			name = "name\000",
			type = 9,
		},
		[3] = {
			id = 2,
			label = 0,
			name = "package\000",
			type = 9,
		},
		[4] = {
			id = 3,
			label = 2,
			name = "dependency\000",
			type = 9,
		},
		[5] = {
			id = 4,
			label = 2,
			name = "message_type\000",
			type = 11,
			type_name = "google.protobuf.DescriptorProto\000",
		},
		[6] = {
			id = 5,
			label = 2,
			name = "enum_type\000",
			type = 11,
			type_name = "google.protobuf.EnumDescriptorProto\000",
		},
		[7] = {
			id = 6,
			label = 2,
			name = "service\000",
			type = 11,
			type_name = "google.protobuf.ServiceDescriptorProto\000",
		},
		[8] = {
			id = 7,
			label = 2,
			name = "extension\000",
			type = 11,
			type_name = "google.protobuf.FieldDescriptorProto\000",
		},
		[9] = {
			id = 8,
			label = 0,
			name = "options\000",
			type = 11,
			type_name = "google.protobuf.FileOptions\000",
		},
		[10] = {
			id = 9,
			label = 0,
			name = "source_code_info\000",
			type = 11,
			type_name = "google.protobuf.SourceCodeInfo\000",
		},
		[11] = {
			id = 1,
			label = 0,
			name = "name\000",
			type = 9,
		},
		[12] = {
			id = 2,
			label = 2,
			name = "field\000",
			type = 11,
			type_name = "google.protobuf.FieldDescriptorProto\000",
		},
		[13] = {
			id = 6,
			label = 2,
			name = "extension\000",
			type = 11,
			type_name = "google.protobuf.FieldDescriptorProto\000",
		},
		[14] = {
			id = 3,
			label = 2,
			name = "nested_type\000",
			type = 11,
			type_name = "google.protobuf.DescriptorProto\000",
		},
		[15] = {
			id = 4,
			label = 2,
			name = "enum_type\000",
			type = 11,
			type_name = "google.protobuf.EnumDescriptorProto\000",
		},
		[16] = {
			id = 5,
			label = 2,
			name = "extension_range\000",
			type = 11,
			type_name = "google.protobuf.DescriptorProto.ExtensionRange\000",
		},
		[17] = {
			id = 7,
			label = 0,
			name = "options\000",
			type = 11,
			type_name = "google.protobuf.MessageOptions\000",
		},
		[18] = {
			id = 1,
			label = 0,
			name = "start\000",
			type = 5,
		},
		[19] = {
			id = 2,
			label = 0,
			name = "end\000",
			type = 5,
		},
		[20] = {
			id = 1,
			label = 0,
			name = "name\000",
			type = 9,
		},
		[21] = {
			id = 3,
			label = 0,
			name = "number\000",
			type = 5,
		},
		[22] = {
			id = 4,
			label = 0,
			name = "label\000",
			type = 14,
			type_name = "google.protobuf.FieldDescriptorProto.Label\000",
		},
		[23] = {
			id = 5,
			label = 0,
			name = "type\000",
			type = 14,
			type_name = "google.protobuf.FieldDescriptorProto.Type\000",
		},
		[24] = {
			id = 6,
			label = 0,
			name = "type_name\000",
			type = 9,
		},
		[25] = {
			id = 2,
			label = 0,
			name = "extendee\000",
			type = 9,
		},
		[26] = {
			id = 7,
			label = 0,
			name = "default_value\000",
			type = 9,
		},
		[27] = {
			id = 8,
			label = 0,
			name = "options\000",
			type = 11,
			type_name = "google.protobuf.FieldOptions\000",
		},
		[28] = {
			id = 1,
			label = 0,
			name = "name\000",
			type = 9,
		},
		[29] = {
			id = 2,
			label = 2,
			name = "value\000",
			type = 11,
			type_name = "google.protobuf.EnumValueDescriptorProto\000",
		},
		[30] = {
			id = 3,
			label = 0,
			name = "options\000",
			type = 11,
			type_name = "google.protobuf.EnumOptions\000",
		},
		[31] = {
			id = 1,
			label = 0,
			name = "name\000",
			type = 9,
		},
		[32] = {
			id = 2,
			label = 0,
			name = "number\000",
			type = 5,
		},
		[33] = {
			id = 3,
			label = 0,
			name = "options\000",
			type = 11,
			type_name = "google.protobuf.EnumValueOptions\000",
		},
		[34] = {
			id = 1,
			label = 0,
			name = "name\000",
			type = 9,
		},
		[35] = {
			id = 2,
			label = 2,
			name = "method\000",
			type = 11,
			type_name = "google.protobuf.MethodDescriptorProto\000",
		},
		[36] = {
			id = 3,
			label = 0,
			name = "options\000",
			type = 11,
			type_name = "google.protobuf.ServiceOptions\000",
		},
		[37] = {
			id = 1,
			label = 0,
			name = "name\000",
			type = 9,
		},
		[38] = {
			id = 2,
			label = 0,
			name = "input_type\000",
			type = 9,
		},
		[39] = {
			id = 3,
			label = 0,
			name = "output_type\000",
			type = 9,
		},
		[40] = {
			id = 4,
			label = 0,
			name = "options\000",
			type = 11,
			type_name = "google.protobuf.MethodOptions\000",
		},
		[41] = {
			id = 1,
			label = 0,
			name = "java_package\000",
			type = 9,
		},
		[42] = {
			id = 8,
			label = 0,
			name = "java_outer_classname\000",
			type = 9,
		},
		[43] = {
			default_int = 0,
			id = 10,
			label = 0,
			name = "java_multiple_files\000",
			type = 8,
		},
		[44] = {
			default_int = 0,
			id = 20,
			label = 0,
			name = "java_generate_equals_and_hash\000",
			type = 8,
		},
		[45] = {
			default_string = "SPEED\000",
			id = 9,
			label = 0,
			name = "optimize_for\000",
			type = 14,
			type_name = "google.protobuf.FileOptions.OptimizeMode\000",
		},
		[46] = {
			default_int = 0,
			id = 16,
			label = 0,
			name = "cc_generic_services\000",
			type = 8,
		},
		[47] = {
			default_int = 0,
			id = 17,
			label = 0,
			name = "java_generic_services\000",
			type = 8,
		},
		[48] = {
			default_int = 0,
			id = 18,
			label = 0,
			name = "py_generic_services\000",
			type = 8,
		},
		[49] = {
			id = 999,
			label = 2,
			name = "uninterpreted_option\000",
			type = 11,
			type_name = "google.protobuf.UninterpretedOption\000",
		},
		[50] = {
			default_int = 0,
			id = 1,
			label = 0,
			name = "message_set_wire_format\000",
			type = 8,
		},
		[51] = {
			default_int = 0,
			id = 2,
			label = 0,
			name = "no_standard_descriptor_accessor\000",
			type = 8,
		},
		[52] = {
			id = 999,
			label = 2,
			name = "uninterpreted_option\000",
			type = 11,
			type_name = "google.protobuf.UninterpretedOption\000",
		},
		[53] = {
			default_string = "STRING\000",
			id = 1,
			label = 0,
			name = "ctype\000",
			type = 14,
			type_name = "google.protobuf.FieldOptions.CType\000",
		},
		[54] = {
			id = 2,
			label = 0,
			name = "packed\000",
			type = 8,
		},
		[55] = {
			default_int = 0,
			id = 3,
			label = 0,
			name = "deprecated\000",
			type = 8,
		},
		[56] = {
			id = 9,
			label = 0,
			name = "experimental_map_key\000",
			type = 9,
		},
		[57] = {
			id = 999,
			label = 2,
			name = "uninterpreted_option\000",
			type = 11,
			type_name = "google.protobuf.UninterpretedOption\000",
		},
		[58] = {
			id = 999,
			label = 2,
			name = "uninterpreted_option\000",
			type = 11,
			type_name = "google.protobuf.UninterpretedOption\000",
		},
		[59] = {
			id = 999,
			label = 2,
			name = "uninterpreted_option\000",
			type = 11,
			type_name = "google.protobuf.UninterpretedOption\000",
		},
		[60] = {
			id = 999,
			label = 2,
			name = "uninterpreted_option\000",
			type = 11,
			type_name = "google.protobuf.UninterpretedOption\000",
		},
		[61] = {
			id = 999,
			label = 2,
			name = "uninterpreted_option\000",
			type = 11,
			type_name = "google.protobuf.UninterpretedOption\000",
		},
		[62] = {
			id = 2,
			label = 2,
			name = "name\000",
			type = 11,
			type_name = "google.protobuf.UninterpretedOption.NamePart\000",
		},
		[63] = {
			id = 3,
			label = 0,
			name = "identifier_value\000",
			type = 9,
		},
		[64] = {
			id = 4,
			label = 0,
			name = "positive_int_value\000",
			type = 4,
		},
		[65] = {
			id = 5,
			label = 0,
			name = "negative_int_value\000",
			type = 3,
		},
		[66] = {
			id = 6,
			label = 0,
			name = "double_value\000",
			type = 1,
		},
		[67] = {
			id = 7,
			label = 0,
			name = "string_value\000",
			type = 12,
		},
		[68] = {
			id = 8,
			label = 0,
			name = "aggregate_value\000",
			type = 9,
		},
		[69] = {
			id = 1,
			label = 1,
			name = "name_part\000",
			type = 9,
		},
		[70] = {
			id = 2,
			label = 1,
			name = "is_extension\000",
			type = 8,
		},
		[71] = {
			id = 1,
			label = 2,
			name = "location\000",
			type = 11,
			type_name = "google.protobuf.SourceCodeInfo.Location\000",
		},
		[72] = {
			id = 1,
			label = 2,
			name = "path\000",
			type = 5,
		},
		[73] = {
			id = 2,
			label = 2,
			name = "span\000",
			type = 5,
		},
	},
	message_name = {
		[1] = "google.protobuf.FileDescriptorSet\000",
		[2] = "google.protobuf.FileDescriptorProto\000",
		[3] = "google.protobuf.DescriptorProto\000",
		[4] = "google.protobuf.DescriptorProto.ExtensionRange\000",
		[5] = "google.protobuf.FieldDescriptorProto\000",
		[6] = "google.protobuf.EnumDescriptorProto\000",
		[7] = "google.protobuf.EnumValueDescriptorProto\000",
		[8] = "google.protobuf.ServiceDescriptorProto\000",
		[9] = "google.protobuf.MethodDescriptorProto\000",
		[10] = "google.protobuf.FileOptions\000",
		[11] = "google.protobuf.MessageOptions\000",
		[12] = "google.protobuf.FieldOptions\000",
		[13] = "google.protobuf.EnumOptions\000",
		[14] = "google.protobuf.EnumValueOptions\000",
		[15] = "google.protobuf.ServiceOptions\000",
		[16] = "google.protobuf.MethodOptions\000",
		[17] = "google.protobuf.UninterpretedOption\000",
		[18] = "google.protobuf.UninterpretedOption.NamePart\000",
		[19] = "google.protobuf.SourceCodeInfo\000",
		[20] = "google.protobuf.SourceCodeInfo.Location\000",
	},
	message_size = {
		[1] = 1,
		[2] = 9,
		[3] = 7,
		[4] = 2,
		[5] = 8,
		[6] = 3,
		[7] = 3,
		[8] = 3,
		[9] = 4,
		[10] = 9,
		[11] = 3,
		[12] = 5,
		[13] = 1,
		[14] = 1,
		[15] = 1,
		[16] = 1,
		[17] = 7,
		[18] = 2,
		[19] = 1,
		[20] = 2,
	},
	name = "descriptor\000",
}

local protobuf = require("protobuf.protobuf")
protobuf.registerFile("pb/pbc.pb")
local pbcbin = protobuf.encode("pbc.file", descriptor)
io.open("pb/desc.pbcbin", "wb"):write(pbcbin):close()
